package maquinaestados;

import entidades.Ancora;
import entidades.Ponto;
import entidades.TelhaBase;

/**
 * Trabalho DAS - 2014/2015
 * @author a21210380, a21190325, a21210392
 */
public class EstadoAdicionarAncora extends Estado{
    private final TelhaBase telha;

    public EstadoAdicionarAncora(TelhaBase telha) {
        this.telha = telha;
    }

    public TelhaBase getTelha() {
        return telha;
    }
    
    @Override
    public Estado drag(float x, float y, boolean fim) {
        return this;
    }

    @Override
    public Estado click(float x, float y, boolean ctr) {
        if(ctr){
            return new EstadoNormal();
        }else {
            Ponto ancoraPonto = telha.getRectangulo().getAncora(x, y);
            ancoraPonto.registarNovaEntidade();
            
            Ancora ancora = new Ancora(ancoraPonto, telha);
            ancora.registarNovaEntidade();
            
            telha.adicionarAncora(ancora);
            
        }
        return this;
    }
    
    @Override
    public void accept(IEstadoVisitante visitor) {
        visitor.visitante(this);
    }
}
